<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<!-- react 核心库 -->
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<!-- dom相关库 -->
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<!-- Es6->Es5 jsx->js -->
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
 
<div id="example"></div>
<!-- 使用JSX，属性使用text/babel -->
<script type="text/babel">

    // 创建类式组件(必须继承,必须写render,render必须有返回值)
    class MyComponent extends React.Component{
        // render放在类的原型上，供实例使用
        // render中的this指向MyComponent的实例对象（组件实例对象）
        render(){
            console.log(this)
            return(
                <h2>我是类定义的组件（适用于【复杂组件】的定义）</h2>
            )
        }
    }
    // 渲染虚拟DOM到页面
    ReactDOM.render(<MyComponent />, document.getElementById('example'));
    /*
        执行了 ReactDOM.reder(<Demo/>......之后发生了什么？)
        1. React解析组件标签，找到了Demo组件。
        2. 发现组件式使用类定义的，随后new出来该类的实例，并通过该实例调用原型上的render方法
        3. 将render返回的虚拟DOM转为真实DOM，随后呈现到页面上
    */
</script>
 
</body>
</html>